package br.gov.ms.tce.modelo.bean;


import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;


@Entity
@Table( schema = "comum", name = "telefone")
public class Telefone implements java.io.Serializable {

	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = -5938271435812198675L;
	private TelefoneId id;
	private TipoTelefoneEnum tipoTelefone;
	private Pessoa pessoa;
	private String descricao;
	private boolean padrao;

	public Telefone() {
	}

	public Telefone(TelefoneId id, TipoTelefoneEnum ctTiposTelefone,
			Pessoa ctPessoa, String nmTel, boolean telPad) {
		this.id = id;
		this.tipoTelefone = ctTiposTelefone;
		this.pessoa = ctPessoa;
		this.descricao = nmTel;
		this.padrao = telPad;
	}

	@EmbeddedId
	@AttributeOverrides({
			@AttributeOverride(name = "codPessoa", column = @Column(name = "cod_pessoa", nullable = false)),
			@AttributeOverride(name = "codTipoTelefone", column = @Column(name = "cod_tipo_telefone", nullable = false)),
			@AttributeOverride(name = "descricao", column = @Column(name = "descricao", nullable = false))})
	public TelefoneId getId() {
		return this.id;
	}

	public void setId(TelefoneId id) {
		this.id = id;
	}	

	/**
	 * @return Obtém o valor da propriedade pessoa
	 */
	@ManyToOne
	@JoinColumn(name = "cod_pessoa", nullable = false, insertable =false, updatable = false)
	public Pessoa getPessoa() {
		return pessoa;
	}

	/**
	 * @param pessoa configura a propriedade pessoa
	 */
	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	@Enumerated
	@Column(name = "cod_tipo_telefone", insertable=false, updatable=false)
	public TipoTelefoneEnum getTipoTelefone() {
		return tipoTelefone;
	}

	public void setTipoTelefone(TipoTelefoneEnum tipoTelefone) {
		this.tipoTelefone = tipoTelefone;
	}

	@Column(insertable=false, updatable=false)
	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public boolean isPadrao() {
		return padrao;
	}

	public void setPadrao(boolean padrao) {
		this.padrao = padrao;
	}
	
	

	
}
